import 'package:file_selector/file_selector.dart';

class FileUtils {
  static String? getMimeType(XFile file) {
    // 优先使用系统识别的类型
    if (file.mimeType != null) {
      var rt = file.mimeType!.replaceFirst(RegExp(r"/.*"), "");
      if(["image","audio","video"].contains(rt)) return rt;
    }
    
    // 手动根据扩展名判断
    final extension = file.name.split('.').last.toLowerCase();
    switch (extension) {
      case 'jpg':
      case 'jpeg':
      case 'png':
      case 'gif':
      case 'webp':
      case 'bmp':
      case 'svg':
      case 'heic':
        return 'image';
      // 其他格式补充
      case 'wav':
      case 'mp3':
      case 'ogg':
      case 'aac':
      case 'flac':
        return 'audio';
      case 'mp4':
      case 'mpeg': 
      case 'mpg':
      case 'mov':
      case 'avi':
      case 'webm':
      case 'flv':
      case 'mkv':
      case 'rmvb':
        return 'video';
      case 'pdf':
      case 'doc':
      case 'docx':
      case 'ppt':
      case 'pptx':
      case 'xls':
      case 'xlsx':
      case 'chm':
      case 'md':
      case 'txt':

      case 'c':
      case 'java':
      case 'kt':
      case 'cpp':
      case 'php':
      case 'html':
      case 'xml':
      case 'css':
      case 'js':
      case 'py':
      case 'go':
      case 'sh':
      case 'dart':
      
        return 'doc';
      case 'zip':
      case 'rar':
      case 'gz':
      case '7z':
      case 'jar':
      case 'apk':
      case 'exe':
        return 'app';
      default:
        return null;
    }
  }


}